package com.qm.chp01type;

/**
 * @author wb
 * @date 2023-06-10 9:41
 * @description: 自动类型转换
 *               自动类型转换（自动类型提升）是 Java
 *               编译器在不需要显式转换的情况下，将一种基本数据类型自动转换为另一种基本数据类型的过程。这种转换通常发生在表达式求值期间，当不同类型的数据需要相互兼容时。自动类型转换遵循以下规则：
 *               如果任何操作数是 double 类型，其他操作数将被转换为 double 类型。
 *               否则，如果任何操作数是 float 类型，其他操作数将被转换为 float 类型。
 *               否则，如果任何操作数是 long 类型，其他操作数将被转换为 long 类型。
 *               否则，所有操作数将被转换为 int 类型。
 */
public class MyType2 {
    public static void main(String[] args) {
        char c1 = 'a';// 定义一个char类型
        int i1 = c1;// char自动类型转换为int
        System.out.println("char自动类型转换为int后的值等于" + i1);
        char c2 = 'A';// 定义一个char类型
        int i2 = c2 + 1;// char 类型和 int 类型计算
        System.out.println("char类型和int计算后的值等于" + i2);
        int intValue = 5;
        double doubleValue = 2.5;
        // 自动类型转换：intValue 被转换为 double 类型
        double result = intValue * doubleValue;
        System.out.println("结果: " + result); // 输出：结果: 12.5
        // byte b = 50;
        // b = b * 2; // Type mismatch: cannot convert from int to byte
    }

}
